home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #14 / Monster Media No. 14 (April 1996) (Monster Media, Inc.).ISO / database / convr601.zip / CONVERT.DOC < prev    next >
Text File  |  1996-01-21  |  24KB  |  527 lines

  1. CONVERT.DOC                          1                         Revised: 01/20/96
  2.  
  3. Program written by:
  4.                         Bruce Guthrie
  5.                         Room H-4885
  6.                         U.S. Dept of Commerce/ESA/STAT-USA
  7.                         Washington, DC 20230
  8.  
  9.                         voice: (202) 482-3234
  10.                         e-mail: bguthrie@doc.gov
  11.  
  12. You may freely copy and re-distribute this program; however, the U.S. Department
  13. of Commerce neither guarantees nor assures compatibility of the program with all
  14. computer software or hardware.
  15.  
  16. Foreign users:  Please provide an Internet e-mail address in all correspondence.
  17.  
  18.  
  19. The CONVERT.EXE program  converts  data  between  several  basic  data  formats.
  20. Features:
  21.  
  22.   * You can read data in from any of the following data formats:
  23.       ASCII-delimited
  24.       fixed field
  25.       dBase-compatible
  26.   * You can write data out in any of the following data formats:
  27.       ASCII-delimited
  28.       fixed field
  29.       dBase-compatible
  30.       WKS (Lotus 1-2-3 release 1 compatible)
  31.   * For ASCII-delimited files, you can specify the delimiters used between
  32.     fields as well as around numeric or character data.
  33.   * For dBase input files, you can retain deleted records if you want.
  34.   * You can resize variables or drop them entirely if desired.
  35.   * You can add fields as desired and assign initial values to them.
  36.   * You can specify up to 10 include filters; all records processed must meet
  37.     at least one of these filter conditions.
  38.   * You can specify up to 10 exclude filters; any records which meet these
  39.     filter conditions are dropped.
  40.   * For WKS output files, you can process input files bigger than Lotus
  41.     1-2-3 itself can handle (1-2-3 limits input records to being 240 characters
  42.     or less).
  43.   * Cell filters can be created, ignoring, say, any record where the value in
  44.     cell 4 is less than 10.
  45.   * The program can only handle files with 255 fields or fewer.  (Those
  46.     obsessed with handling more fields can ask for a version that does so.)
  47.   * Handles DOS text files (lines end with CR/LF), Mac text files (lines end
  48.     with CR), or Unix text files (lines end with LF).
  49.  
  50.  
  51.  
  52. CONVERT.DOC                          2                         Revised: 01/20/96
  53.  
  54. Data format types:
  55.  
  56. An ASCII-delimited file is one which typically has  double  quotes  around  each
  57. character field (the quotes  are  optional  in  CONVERT)  and  typically  commas
  58. between fields.  Leading and trailing spaces are removed from character as  well
  59. as all other values.
  60.  
  61. A fixed-field file places each field  in  the  same  column  positions  on  each
  62. record.  The lengths of the fields are the same from record to record.
  63.  
  64. As an example, these might be an ASCII-delimited records:
  65.  
  66.         "Economic Bulletin Board","202 482-3870",35
  67.         "EBB High-Speed","202 482-2584",100
  68.  
  69. Fixed-field file records might look like this for the same data:
  70.  
  71.         Economic Bulletin Board 202 482-3870  35
  72.         EBB High-Speed          202 482-2584 100
  73.  
  74. (On files generated on a PC, most fixed-field file  records  end  with  a  CR/LF
  75. combination.  Although these two characters actually add two characters to  each
  76. line, most people  and  programming  languages  ignore  them.   Files  generated
  77. elsewhere may not have these line terminators.  Use the /BINARY option  if  this
  78. is the case.)
  79.  
  80. WKS files are supported directly by Lotus 1-2-3 (all versions) as well  as  most
  81. other spreadsheet programs.  DBF files are  supported  by  dBaseIII,  dBaseIII+,
  82. dBaseIV, and most other data base management programs (Paradox etc).
  83.  
  84.  
  85.  
  86. CONVERT.DOC                          3                         Revised: 01/20/96
  87.  
  88. Field-definition file:
  89.  
  90. Unless you are reading a dBase file, this program  requires  a  field-definition
  91. file to figure out the characteristics for each field and also  to  set  certain
  92. file characteristics.  If you're processing an ASCII-delimited input  file,  the
  93. routine can try to create a field-definition file for you if desired.
  94.  
  95. The  field-definition  file  can  be  created  with  any   text   editor.    The
  96. field-definition file consists of several  records  with  the  following  fields
  97. separated by spaces.  Except for the record type indicator (which must begin  in
  98. column 1), all other fields can be placed in any columns:
  99.  
  100.         (1) record type (see below)
  101.         (2) length of field on input
  102.         (3) number of decimal places for numeric data (if you don't know,
  103.             put a "?" here; for non-numeric data, a "0" is fine) on output
  104.         (4) length of field on output
  105.  
  106. Any characters after the field length are treated as comment fields.  You  would
  107. typically use this to enter the field name  or  column  position  or  any  other
  108. information of use to you.
  109.  
  110. If you'd like, you can leave out both decimal place count *and*  the  length  of
  111. the output field.  (You cannot leave off one and include the other however.)  If
  112. they are left out, the number of decimal places is presumed to be  "0"  and  the
  113. length of the output field is presumed to be the same as the length of the input
  114. field.
  115.  
  116. The data record types accepted by this routine are as follows:
  117.  
  118.         type C = character data
  119.              N = numeric
  120.              L = logical (T or F)
  121.              D = date (in yyyymmdd format)
  122.              M = memo fields (only for dBase input files; ignored on output)
  123.  
  124. The data fields should be in the order the fields are found in the source file.
  125.  
  126. Note that for fixed field files, you have to account for every byte in the file.
  127. If you have something like this:
  128.  
  129.         12345678_1_2345678_2_2345678_3      (column positions)
  130.         APPLE    X Y    12 BANANAS
  131.  
  132. Even though you may think you only have five fields,  the  following  .DEF  file
  133. will NOT work:
  134.  
  135.         ; Bad .DEF file:  Note does not account for blank spaces
  136.         ; NOTE:  Input and output lengths are the same (mistakenly) so left
  137.         ; out number of decimal places and output length for each record.
  138.         C   8 Fruit1
  139.         C   1 Class1
  140.         C   1 Class2
  141.         N   5 Value
  142.         C  11 Fruit2
  143.  
  144.  
  145. CONVERT.DOC                          4                         Revised: 01/20/96
  146.  
  147. You may want the Fruit1 field to be in columns 1 through 8 and Class1 to  be  in
  148. column 10 but the routine will not know to  skip  column  9  so  it  will  start
  149. reading Class1 beginning in column 9, Class2 beginning in column  10,  etc.   To
  150. drop the blank positions, you have to add dummy fields on input and ask for them
  151. to be dropped on output:
  152.  
  153.         ; Good .DEF file:  Spaces between fields are accounted for
  154.         C   8       Fruit1
  155.         C   1 0   0 Filler
  156.         C   1       Class1
  157.         C   1 0   0 Filler
  158.         C   1       Class2
  159.         C   1 0   0 Filler
  160.         N   5       Value
  161.         C   1 0   0 Filler
  162.         C  11       Fruit2
  163.  
  164. You can also use the input field length and output field lengths to either  drop
  165. fields using other formats (by specifying a zero length  for  the  output  field
  166. length) or for creating fields on output (by specifying a zero  length  for  the
  167. input field length).  You can also use this to expand on contract a field.   For
  168. example, if Fruit1 is 8 characters long  but  you  only  want  it  to  occupy  4
  169. characters on output (thus the field would be  truncated),  specify  8  for  the
  170. input field length and 4 for the output field length:
  171.  
  172.         C 8 0 4 Fruit
  173.  
  174. If the output field length is wider than the input field length, the data values
  175. will be shifted right or left depending on the data type.  In  general,  numeric
  176. fields are shifted right (so extra spaces show up in front of  the  number)  and
  177. all other field types (character, logical, or date) are shifted left.
  178.  
  179. You can have the routine create the field-definition file it's using  for  dBase
  180. and ASCII-delimited files.   This  is  controlled  by  the  /OUTDEF=deffile  and
  181. /-OUTDEF parameters.
  182.  
  183.  
  184. Filters:
  185.  
  186. CONVERT supports two types of filters; record filters and cell (field) filters.
  187.  
  188. Record filters:
  189.  
  190.   In general, record filters apply to the record as a whole.  They are specified
  191.   as unique types of records in the field-definition file.
  192.  
  193.   You may specify up to 10 include record filters and up to  10  exclude  record
  194.   filters in the field-definition file.
  195.  
  196.  
  197. CONVERT.DOC                          5                         Revised: 01/20/96
  198.  
  199.   If an include record filter is specified, the input  record  must  contain  at
  200.   least one of the specified character strings in order to be processed.  If  an
  201.   exclude record filter is specified, any input record which contains any of the
  202.   specified  character  strings  will  be  ignored.   Record  filters  are  case
  203.   sensitive (capitalization matters) and processed as "or" items (if any  filter
  204.   is met, the condition is met; record filters are  not  combined  to  determine
  205.   fulfillment). Record filters are specified in the field-definition file in the
  206.   following ways:
  207.  
  208.         /+=string     include filter, the string "string" can appear anywhere
  209.         /S+=string    include filter, the string "string" is at the beginning
  210.                       of the record
  211.         /+S=string    include filter, the string "string" is at the end of the
  212.                       record
  213.         /-=string     exclude filter, the string "string" can appear anywhere
  214.         /S-=string    exclude filter, the string "string" is at the beginning
  215.                       of the record
  216.         /-S=string    exclude filter, the string "string" is at the end of the
  217.                       record
  218.  
  219.   For example, if you want to specify in your control file that  you  only  want
  220.   records that contain either "Japan" or "France" *and* you want to exclude  any
  221.   records that begin with an underscore character, you would need to include the
  222.   following three filter statements:
  223.  
  224.         /+=Japan
  225.         /+=France
  226.         /S-=_
  227.  
  228.   The character string can include hexadecimal codes (in  the  &Hxx  format)  or
  229.   decimal codes (in the \ddd format) if necessary.  See BRUCEHEX.DOC file.
  230.  
  231. Cell filters:
  232.  
  233.   Cell filters are applied to individual cells (or fields) in the data.  If  any
  234.   cell fails the test for that cell, the entire record is skipped for additional
  235.   processing.
  236.  
  237.   Each variable in the field-definition file can include a cell filter.  Filters
  238.   are specified on the field type records as the last parameters on  the  record
  239.   and are immediately preceded with "||" indicators:
  240.  
  241.         N 8 Weight || > 100
  242.         N 4 Height || <= 6
  243.         C 10 Name || = Banana
  244.  
  245.   Cell filters can be specified as any one of six relations:
  246.  
  247.      "="  is equal to
  248.      "<"  is less than
  249.      ">"  is greater than
  250.      "<=" is less than or equal to
  251.      ">=" is greater than or equal to
  252.      "<>" is not equal to
  253.  
  254.  
  255. CONVERT.DOC                          6                         Revised: 01/20/96
  256.  
  257.   You cannot specify ranges.  The item to the right of the relation  is  treated
  258.   as a string if the field is non-numeric, otherwise, it's treated as a  number.
  259.   Do not include quotes around the strings unless you want that as part  of  the
  260.   condition.  The value can include hexadecimal codes (in the  &Hxx  format)  or
  261.   decimal codes (in the \ddd format) if necessary (see BRUCEHEX.DOC  file).   It
  262.   can also contain spaces.  The cell filter is  case  sensitive  (capitalization
  263.   matters).
  264.  
  265.   If the field is being created, you  can  specify  an  assignment  cell  filter
  266.   (using "=") which will set the value of that cell as something.  For example:
  267.  
  268.         C      10 First Name
  269.         C  0 0  1 Middle Initial || = ?
  270.         C 10 0 20 Last Name
  271.  
  272.  
  273. Field-definition file for SimTel archives:
  274.  
  275. People     who     use     the     SimTel     archives     (ftp.coast.net     or
  276. http://www.coast.net/SimTel) may find the enclosed SIMIBM.DEF file  useful.   It
  277. provides  the  field  definitions  for  the  standard  SIMIBM.IDX   file   (from
  278. subdirectory SimTel/filedocs, download simindex.zip).  The  file  includes  some
  279. hints for dropping fields that don't seem to be useful as  well  as  restricting
  280. the listing to just those files that have been added since a given date.
  281.  
  282.  
  283. Specifying parameters:
  284.  
  285. Parameters for this program can be set in the following ways.  The last  setting
  286. encountered always wins:
  287.   - Read from an *.INI file (see BRUCEINI.DOC file),
  288.   - Through the use of an environmental variable (SET CONVERT=whatever), or
  289.   - From the command line (see "Syntax" below)
  290.  
  291.  
  292.  
  293. CONVERT.DOC                          7                         Revised: 01/20/96
  294.  
  295. Syntax:
  296.  
  297.     CONVERT infile [ outfile [ deffile ] ]
  298.       [ /INDEF=deffile | /-INDEF ] [ /OUTDEF=deffile | /-OUTDEF ]
  299.       [ /OVERWRITE | /-OVERWRITE | /APPEND | /OVERASK ]
  300.       [ /FROM FIXED | /FROM ASCII | /FROM DBF ] [ /DELETED | /-DELETED ]
  301.       [ /TO FIXED | /TO ASCII | /TO WKS | /TO DBF ] [ /HEADER | /-HEADER ]
  302.       [ /DELIMS=aroundstrings,aroundnums,betweenfields ] [ /BEEP | /-BEEP ]
  303.       [ /INMISS=val ] [ /INMISSC=val ] [ /OUTMISS=val ] [ /OUTMISSC=val ]
  304.       [ /SKIP | /MISSING | /ABORT ] [ /FIRSTOBS=n ] [ /LASTOBS=n ] [ /-VER ]
  305.       [ /NULLS | /-NULLS ] [ /BINARY | /-BINARY ] [ /SCAN=n ] [ /GAP=n ]
  306.       [ /CFILTERS | /-CFILTERS ] [ /Iinitfile | /-I ] [ /Q ] [ /? ] [ /?&H ]
  307.  
  308. "infile" is the file specification for the ASCII-delimited or  fixed-field  file
  309. you want  converted.   You  can  specify  a  drive  and  path  specification  if
  310. necessary.  This parameter is required.
  311.  
  312. "outfile" is the file specification of the file you want  to  create.   You  can
  313. specify a drive and path specification if necessary.  If no outfile is provided,
  314. the routine will presume you want the output file called the same thing  as  the
  315. infile but you want the extension  to  be  ".FIX"  (if  the  output  file  is  a
  316. fixed-field file), ".PRN" (if the output file is ASCII-delimited), or ".WKS" (if
  317. the output file is to be in a WKS format).
  318.  
  319. "deffile" is the file specification for the input  field-definition  file.   You
  320. can specify a drive and path specification  if  necessary.   If  no  deffile  is
  321. specifically provided, the routine will presume it is called the same  thing  as
  322. the infile but it has the extension of ".DEF".  Note that the deffile  can  only
  323. be provided this  way  if  you  also  specify  the  outfile  name;  the  use  of
  324. /INDEF=deffile is recommended instead.
  325.  
  326. "/INDEF=deffile" provides the name of the field-definition file to  be  read  by
  327. the program.  If no deffile is  specifically  provided  and  you're  using  FROM
  328. ASCII, the routine will presume the field-definition file exists  and  is  named
  329. the same thing as the infile but it has the extension of ".DEF".  A deffile  has
  330. to be specifically provided for FROM FIXED files if one is desired.
  331.  
  332. "/-INDEF" says there is no field-definition file.  This is the default if you're
  333. using FROM DBF or FROM FIXED.
  334.  
  335. "/OUTDEF=deffile" provides the name of the output file that you want the program
  336. to write the field-definition file to.  This is useful in cases  where  you  did
  337. *not* use a field-definition file on input  since  it  allows  you  to  see  and
  338. possibly modify the field-definition file for  next  time.   If  no  deffile  is
  339. provided  and  you're  using  FROM   DBF,   the   routine   will   presume   the
  340. field-definition file is named the same thing  as  the  infile  but  it  has  an
  341. extension of ".DEF".
  342.  
  343. "/-OUTDEF" says to skip the creation of the field-definition file.  This is  the
  344. default for ASCII-delimited and fixed-field files.
  345.  
  346.  
  347. CONVERT.DOC                          8                         Revised: 01/20/96
  348.  
  349. "/OVERWRITE" says to overwrite the output file if it exists already.
  350.  
  351. "/-OVERWRITE" says to abort if the output file exists already.
  352.  
  353. "/APPEND" says to append (add) to the output file if it  exists  already.   This
  354. option is only available if you're  creating  either  a  fixed-field  or  ASCII-
  355. delimited output file.
  356.  
  357. "/OVERASK" says to ask if the output file exists already.  This is initially the
  358. default.
  359.  
  360. "/FROM FIXED", "/FROM ASCII", and "/FROM DBF" specifies the format for the input
  361. file.  The routine usually reads the input file and guesses its format for  you.
  362. If the routine guesses incorrectly, use the /-VER parameter (below) to  overrule
  363. it.
  364.  
  365. "/DELETED" applies to dBase input files  only.   It  says  you  want  to  retain
  366. records tagged as "deleted".  Otherwise, they're dropped in the output file.
  367.  
  368. "/-DELETED" applies to dBase input files only.  It says to drop  records  tagged
  369. as "deleted".  This is initially the default.
  370.  
  371. "/TO FIXED", "/TO ASCII", "/TO WKS", and "/TO DBF" tells the routine  what  sort
  372. of output file you'd like to create.  The input and output file formats  can  be
  373. the same if desired but you have to explicity specify an  output  file  name  in
  374. that case.  Initially defaults to "/TO FIX".
  375.  
  376. "/HEADER" is used in conjunction with  WKS  output  files.   If  /HEADER  is  in
  377. effect, the first row of the spreadsheet will contain the variable name for  the
  378. cell as provided in your control file.  If none are provided,  the  field  names
  379. will be FIELD_01 onward.  "/-HEADER" turns this off and is  the  default.   Note
  380. that the header line (if any) will show up in the output counts.
  381.  
  382. "/DELIMS=aroundstrings,aroundnums,betweenfields"  allows  you  to  specify   the
  383. delimiters (in sequence) around string fields, around numeric fields (any fields
  384. that isn't a character field), and between fields.  Defaults to:
  385.  
  386.         /DELIMS=",,,
  387.  
  388. (Use quotes around character strings, nothing around numeric data, and the third
  389. comma indicates that there is a comma between fields.)  The  replacement  string
  390. can include hexadecimal codes (in the &Hxx format) or decimal codes (in the \ddd
  391. format) if necessary (see BRUCEHEX.DOC file) so either of  the  following  would
  392. put a tab between fields:
  393.  
  394.         /DELIMS=",,&H09
  395.         /DELIMS=",,\009
  396.  
  397. "/BEEP" beeps when the program is finished.
  398.  
  399. "/-BEEP" reverses /BEEP.  Initially the default.
  400.  
  401.  
  402. CONVERT.DOC                          9                         Revised: 01/20/96
  403.  
  404. "/INMISS=val" specifies that any numeric value that  has  the  character  string
  405. representation of "val" will be considered missing.  Note that this is an  exact
  406. character string comparison so /INMISS=1 will not compare to a value of  "1.00".
  407. Defaults to /INMISS=NULL (which translates as spaces).
  408.  
  409. "/INMISSC=val" specifies that any character string value that has the  value  of
  410. "val" will be considered missing.  Defaults to /INMISSC=NULL  (which  translates
  411. as spaces).
  412.  
  413. "/OUTMISS=val" specifies that any missing numeric input value will be translated
  414. on output as "val".  For example, "/OUTMISS=N.A." would fill in "N.A." for  each
  415. missing value.  Defaults to /OUTMISS=NULL (which translates as spaces).
  416.  
  417. "/OUTMISSC=val" specifies  that  any  missing  character  input  value  will  be
  418. translated on output as "val".  Defaults to /OUTMISSC=NULL (which translates  as
  419. spaces).
  420.  
  421. "/SKIP" says to skip records with bad data values; otherwise the routine  aborts
  422. when it runs into any.  /SKIP, /MISSING, and /ABORT are mutually exclusive.
  423.  
  424. "/MISSING" says to presume any  missing  fields  in  an  ASCII-delimited  record
  425. should be filled in with blanks (for character fields) and 0 for numeric fields.
  426. Incomplete records are written out (unlike  in  /SKIP).   /SKIP,  /MISSING,  and
  427. /ABORT are mutually exclusive.  Note that the program will only  print  out  the
  428. first "bad" record.  There may be others that show up after this one.
  429.  
  430. "/ABORT" says to abort when you run into bad records.   Initially  the  default.
  431. /SKIP, /MISSING, and /ABORT are mutually exclusive.
  432.  
  433. "/FIRSTOBS=n" says to start reading the data beginning  with  record  number  n.
  434. Initially defaults to "/FIRSTOBS=1".
  435.  
  436. "/LASTOBS=n" says to stop reading the data after  record  number  n.   Initially
  437. defaults to "/LASTOBS=2000000000" (2 billion).
  438.  
  439. "/-VER" is used when  the  program  verifies  your  input  file  and  mistakenly
  440. determines that it is a file type other than what it is.  This sometimes happens
  441. with fixed-field input files even when /FROM FIXED is specified.
  442.  
  443. "/NULLS" allows fields that begin with decimal 0 to be left in the  output  file
  444. as valid values.  Otherwise,  they're  treated  as  being  missing.   /NULLS  is
  445. initially the default.
  446.  
  447. "/-NULLS" translates any field which begins with the decimal 0 value as missing.
  448. For character fields, it's translated to the value of  INMISSC,  numeric  fields
  449. are switched to the INMISS value.  /NULLS is initially the default.
  450.  
  451. "/BINARY" says that you have a fixed-field input  file  and  that  the  physical
  452. records in this file do not end with the  normal  CR/LF  combination.   This  is
  453. fairly typical of files created on a  mainframe  or  copied  from  a  tape.   If
  454. /BINARY  is  used,  every  byte  must  be  precisely  accounted  for.    /BINARY
  455. automatically invokes the /FROM FIXED option.
  456.  
  457. "/-BINARY" says that every record ends with a CR/LF combination.  This is fairly
  458. standard on files created on a PC, even fixed-field files.  When /-BINARY is  in
  459. effect, trailing fields are ignored.  "/-BINARY" is initially the default.
  460.  
  461.  
  462. CONVERT.DOC                          10                        Revised: 01/20/96
  463.  
  464. "/SCAN=n" says to read the first  n-records  when  determining  the  input  file
  465. characteristics.  This is only relevant for /FROM  ASCII  files  which  use  the
  466. /-INDEF option.  The field types are based on the  first  record  read  but  the
  467. maximum field widths are determined by reading the first  n-records.   Initially
  468. defaults to "/SCAN=10".
  469.  
  470. "/GAP=n" specifies to add n-characters to each output field width.  This is only
  471. relevant for /TO FIXED fields which use  the  /-INDEF  option.   In  this  case,
  472. n-characters are added to each output field length for  non-numeric  fields  and
  473. extra blank fields are added before every numeric field.  This is an easy way of
  474. splitting up columns on display.  If you want non-uniform gaps, you  can  always
  475. process the file twice; specify /-INDEF with /OUTDEF the first time, modify  the
  476. field-definition file by hand, and then reprocess the file with /INDEF=filename.
  477. Initially defaults to "/GAP=0".
  478.  
  479. "/CFILTERS" says that if cell filters are specified in the field-definition file
  480. (e.g. "N 3 Age || > 5"), these cell  filters  are  to  be  respected.   This  is
  481. initially the default.  (If cell filters do not appear in  the  field-definition
  482. file at all, the switch is ignored.)
  483.  
  484. "/-CFILTERS" says that if cell filters are  specified  in  the  field-definition
  485. file, they are to be ignored.  This is useful sometimes if you  want  the  whole
  486. file instead of just getting a subset of it.  Note that this  switch  will  also
  487. turn off initializing new fields (as in "N 0 0 3 Age || = 12").
  488.  
  489. "/Iinitfile" says to read an initialization file with the file name  "initfile".
  490. The file specification *must* contain a period.  Initfiles are described in  the
  491. BRUCEINI.DOC file.  Initially defaults to "/ICONVERT.INI".
  492.  
  493. "/-I" (or "/INULL") says to skip loading the initialization file.
  494.  
  495. "/Q" turns off the line-by-line status report.
  496.  
  497. "/?" or "/HELP" or "HELP" shows you the syntax for the command.
  498.  
  499. "/?&H" gives you a hexadecimal and decimal conversion table.
  500.  
  501.  
  502.  
  503. CONVERT.DOC                          11                        Revised: 01/20/96
  504.  
  505. Return codes:
  506.  
  507. CONVERT returns the following ERRORLEVEL codes:
  508.         0 = no problems, file converted
  509.       254 = problems for formats of data
  510.       255 = syntax problems, file(s) not found, or /? requested
  511.  
  512.  
  513. Restrictions and Caveats:
  514.  
  515. The program skips all Memo fields in dBase files on input.
  516.  
  517. Most spreadsheet programs restrict a given field length to being 240  characters
  518. or less.
  519.  
  520. Date fields which are in the form "yy-mm-dd" (instead of "yyyymmdd")  should  be
  521. declared as character fields instead of date fields.
  522.  
  523. Date fields converted for WKS files are changed into strings of  the  "yy-mm-dd"
  524. format.
  525.  
  526. 
  527.